package alkaid.eis.sys.repository;

import java.util.List;
import java.util.Optional;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import alkaid.eis.sys.entity.Area;

/**
 * 地区数据接口
 *  
 * @author Lucky Yang
 * @since 0.0.1
 */
public interface AreaRepository extends JpaRepository<Area, Long>, JpaSpecificationExecutor<Area> {
    /**
     * 查询子地区
     * 
     * @param pcode 父地区
     * @return
     */
    List<Area> findChildByPcode(String pcode);

    /**
     * 查询顶级地区
     * @return
     */
    List<Area> findByPcodeIsNull();

    /**
     * 统计子地区个数
     * 
     * @param pcode 父代码
     * @return
     */
    int countChildByPcode(String pcode);

    /**
     * 查询
     * 
     * @param code 代码
     * @return
     */
    Optional<Area> findByCode(String code);
}
